#include<iostream> #include<cstdio> #include<bitset> using namespace std;
bitset<2005> a[2005]; int n, x, y;
void gauss() { for (int r = 1, l = 1; l <= n; l++) { int t = r; for (int i = r; i <= n; i++) if (a[i][l]) t = i; if (!a[t][l]) continue; swap(a[t], a[r]); for (int i = r + 1; i <= n; i++) if (a[i][l]) a[i] = a[i] ^ a[r]; r++; } for (int i = n; i >= 1; i--) { if (!a[i][i]) a[i][n + 1] = 1; else for (int j = i + 1; j <= n; j++) a[i][n + 1] = a[i][n + 1] ^ (a[i][j] & a[j][n + 1]); } }
int main() { scanf("%d%d", &x, &y); n = x * y; for (int i = 1; i <= x; i++) { for (int j = 1; j <= y; j++) { int p = (i - 1) * y + j; int p1 = p - y, p2 = p + y, p3 = p - 1, p4 = p + 1; if (i > 1) a[p][p1] = 1; if (j > 1) a[p][p3] = 1; if (i < x) a[p][p2] = 1; if (j < y) a[p][p4] = 1; a[p][p] = 1; } } gauss(); for (int i = 1; i <= n; i++) { printf("%d ", (a[i][n + 1] ? 1 : 0)); if (i % y == 0) printf("\n"); } return 0; }